/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：UICompositeDialog.js<br>
 * 日期：2016年8月23日<br>
 * 作者: 刘昭<br>
 * 功能：对话框组件<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");


/**
 * 类型名称：Rainier.UI.V2.UICompositeDialog<br>
 * 类型功能：创建对话框<br>
 */
Rainier.UI.V2.UICompositeDialog = Rainier.UI.V2.UIComposite.extend({
	
	NAME : "Rainier.UI.V2.UICompositeDialog",

	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.init<br>
	 * 函数功能：构造函数<br>
	 * 参数输入：objParentComposite	:  	父组件实例 一般为对应的panel或者layout中添加<br>
	 * 参数输入：objProperties		 	:	
	 * {
	 * 		title		: "XX对话框",				//对话框标题
	 * 		draggable	: "true",				//对话框可拖动性
	 * }
	 * 注：具体参数信息参照easyUI官网该组件Properties。<br>	
	 * 异常信息：无<br>
	 */
	init : function(objParentComposite,objProperties){
		//使用父类初始化子类对象
		this._super(objParentComposite,objProperties);
	},

	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.appendEventHandler<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	appendEventHandler : function(){		
		this.m_aEventList = ['onBeforeLoad',
		                     'onLoad',
		                     'onLoadError',
		                     'onBeforeOpen',
		                     'onOpen',
		                     'onBeforeClose',
		                     'onClose',
		                     'onBeforeDestroy',
		                     'onDestroy',
		                     'onBeforeCollapse',
		                     'onCollapse',
		                     'onBeforeExpand',
		                     'onExpand',
		                     'onResize',
		                     'onMove',
		                     'onMaximize',
		                     'onRestore',
		                     'onMinimize'
		                     ];
		this._super();
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.createComposite<br>
	 * 函数功能：创建组件<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	createComposite : function(eleParent){
		this._super(eleParent);		
		var newEle = this.CreateElement("div",this.m_objProperties.id);
		eleParent.append(newEle);
		newEle.dialog(this.m_objProperties);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.callUiMethod<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：sMethod 方法名称
	 * 参数输入：objArgs 方法参数
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	callUiMethod : function(sMethod,objArgs){
		return this.getElement().dialog(sMethod,objArgs);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.options<br>
	 * 函数功能：功能选项展示<br>
	 * 参数输入：<br>
	 * 参数输出：<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	options : function(){
		return this.getElement().dialog('options');
	},

	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.options<br>
	 * 函数功能：功能选项展示<br>
	 * 参数输入：<br>
	 * 参数输出：<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	panel : function(){
		return this.getElement().dialog('panel');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.header<br>
	 * 函数功能：返回面板标头对象<br>
	 * 参数输入：<br>
	 * 参数输出：<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	header : function(){
		return this.getElement().dialog('header');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.footer<br>
	 * 函数功能：返回面板脚注对象<br>
	 * 参数输入：<br>
	 * 参数输出：<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	footer : function(){
		return this.getElement().dialog('footer');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.body<br>
	 * 函数功能：返回面板主体对象<br>
	 * 参数输入：<br>
	 * 参数输出：<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	body : function(){
		return this.getElement().dialog('body');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.setTitle<br>
	 * 函数功能：设置标头文字标题<br>
	 * 参数输入：sTitle 标题字符串<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	setTitle : function(sTitle){
		return this.getElement().dialog('setTitle',sTitle);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.open<br>
	 * 函数功能：当强制打开的参数设置为true，面板会被打开，而避开onBeforeOpen回调函数<br>
	 * 参数输入：bForceOpen 强制开为true<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	open : function(bForceOpen){
		return this.getElement().dialog('open',bForceOpen);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.close<br>
	 * 函数功能：当强制关闭的参数设置为true，面板会被关闭，而避开onBeforeClose回调函数<br>
	 * 参数输入：bForceClose 强制关闭为true<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	close : function(bForceClose){
		return this.getElement().dialog('close',bForceClose);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.destroy<br>
	 * 函数功能：当强制摧毁的参数设置为true，面板会被摧毁，而避开onBeforeDestroy回调函数<br>
	 * 参数输入：bForceDestroy 注销为true<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	destroy : function(bForceDestroy){
		return this.getElement().dialog('destroy',bForceDestroy);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.clear<br>
	 * 函数功能：清除面板内容<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	clear : function(){
		return this.getElement().dialog('clear');
	},
	
	/**
	 * 函数名称：Rainier.UI.UICompositeDialog.refresh<br>
	 * 函数功能：刷新面板来加载远程数据，如果‘href’参数被指定，他将覆盖原来的‘href’属性
	 * Refresh the panel to load remote data. If the 'href' parameter is assigned, it will override the old 'href' property.<br>
	 * 参数输入：sHerf 链接字符串<br>
	 * 	Code example:
     * 	// open a panel and then refresh its contents.
	 * 	$('#pp').panel('open').panel('refresh');
	 * 	// refresh contents with a new URL.
	 * 	$('#pp').panel('open').panel('refresh','new_content.php');
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	refresh : function(sHerf){
		return this.getElement().dialog('refresh',sHerf);			
	},
	
	/**
	 * 函数名称：Rainier.UI.UICompositeDialog.resize<br>
	 * 函数功能：设置对话框大小并布局，选项对象包含如下属性（高，宽，左，上）<br>
	 * Set panel size and do layout. The options object contains following properties:<br>
	 * width: the new panel width
	 * height: the new panel height
	 * left: the new panel left position
	 * top: the new panel top position
	 * 
	 * 参数输入：objOptions 选项对象<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	resize : function(objOptions){
		return this.getElement().dialog('resize',objOptions);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.doLayout<br>
	 * 函数功能：设置面板中子组件的大小<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	doLayout : function(){
		return this.getElement().dialog('doLayout');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.move<br>
	 * 函数功能：移动面板到新位置，可设置左和上<br>
	 * 参数输入：objOptions 选项对象<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	move : function(objOptions){
		return this.getElement().dialog('move',objOptions);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.maximize<br>
	 * 函数功能：让面板充满其容器<br>
	 * 参数输入：<br>
	 * 参数输出：<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	maximize : function(){
		return this.getElement().dialog('maximize');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.minimize<br>
	 * 函数功能：最小化对话框<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	minimize : function(){
		return this.getElement().dialog('minimize');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.restore<br>
	 * 函数功能：还原面板尺寸和位置<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	restore : function(){
		return this.getElement().dialog('restore');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.collapse<br>
	 * 函数功能：折叠面板主体，sAnimate参数指明是否使用动画<br>
	 * 参数输入：sAnimate 动画字符串<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	collapse : function(sAnimate){
		return this.getElement().dialog('collapse',sAnimate);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.expand<br>
	 * 函数功能：延展面板主体，sAnimate参数指明是否使用动画<br>
	 * 参数输入：sAnimate 动画字符串<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	expand : function(sAnimate){
		return this.getElement().dialog('expand',sAnimate);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.window<br>
	 * 函数功能：返回外层窗口对象<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	window: function(){
		return this.getElement().dialog('window');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.hcenter<br>
	 * 函数功能：在水平方向上居中窗口<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	hcenter: function(){
		return this.getElement().dialog('hcenter');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.vcenter<br>
	 * 函数功能：在垂直方向上居中窗口<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	vcenter: function(){
		return this.getElement().dialog('vcenter');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.center<br>
	 * 函数功能：在屏幕中间居中窗口<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	center: function(){
		return this.getElement().dialog('center');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDialog.dialog<br>
	 * 函数功能：返回外部对话框对象<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	dialog: function(){
		return this.getElement().dialog('dialog');
	},
});